package com.gsk.europepharma.salesReport.struts.actions;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.gsk.europepharma.salesReport.utils.Legende;
import com.gsk.europepharma.salesReport.utils.Palette;
import com.gsk.europepharma.salesReport.utils.UtilsSalesReport;

public class SaveLegende extends Action {
	
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		HttpSession sessionObject = request.getSession();
		
		// Recuperation des parametres
		String all = request.getParameter("all");
		String legendeCartoRegion = request.getParameter("legendeCartoRegion");
		String typeClassement = request.getParameter("typeClassement");
		String nbCouleurs = request.getParameter("nbCouleurs");
		String couleurBase1 = request.getParameter("couleurBase1");
		String couleurBase2 = request.getParameter("couleurBase2");
		String couleurBase3 = request.getParameter("couleurBase3");
		String nbTranches = request.getParameter("nbTranches");
		String colors = request.getParameter("colors");
		String palettesMin = request.getParameter("palettesMin");
		String palettesMax = request.getParameter("palettesMax");
		
		if (all.equals("true")) {
			Legende legendeRegion = (Legende) sessionObject.getAttribute("legendeRegion");
			Legende legendeSecteur = (Legende) sessionObject.getAttribute("legendeSecteur");
			
			legendeRegion.setTypeClassement(typeClassement);
			legendeRegion.setNbCouleurs(Integer.parseInt(nbCouleurs));
			legendeRegion.setCouleurBase1(couleurBase1);
			legendeRegion.setCouleurBase2(couleurBase2);
			legendeRegion.setCouleurBase3(couleurBase3);
			legendeRegion.setNbTranches(Integer.parseInt(nbTranches));
			
			legendeSecteur.setTypeClassement(typeClassement);
			legendeSecteur.setNbCouleurs(Integer.parseInt(nbCouleurs));
			legendeSecteur.setCouleurBase1(couleurBase1);
			legendeSecteur.setCouleurBase2(couleurBase2);
			legendeSecteur.setCouleurBase3(couleurBase3);
			legendeSecteur.setNbTranches(Integer.parseInt(nbTranches));
			
			List<Palette> palettesRegion = new ArrayList<Palette>();
			List<Palette> palettesSecteur = new ArrayList<Palette>();
			String tabColors[] = colors.split(";");
			String tabPalettesMin[] = palettesMin.split(";");
			String tabPalettesMax[] = palettesMax.split(";");
			int i = 0;
			for (String color : tabColors) {
				if (!color.equals("")) {
					Palette paletteRegion = new Palette();
					paletteRegion.setColor(color);
					if (!palettesMin.equals("")) {
						paletteRegion.setMin(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMin[i]), 3));
						paletteRegion.setMax(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMax[i]), 3));
					}
					
					Palette paletteSecteur = new Palette();
					paletteSecteur.setColor(color);
					if (!palettesMin.equals("")) {
						paletteSecteur.setMin(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMin[i]), 3));
						paletteSecteur.setMax(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMax[i]), 3));
					}
					
					palettesRegion.add(paletteRegion);
					palettesSecteur.add(paletteSecteur);
				}
				i++;
			}
			legendeRegion.setPalettes(palettesRegion);
			legendeSecteur.setPalettes(palettesSecteur);
			
			sessionObject.setAttribute("legendeRegion", legendeRegion);
			sessionObject.setAttribute("legendeSecteur", legendeSecteur);
		} else {
			Legende legende = new Legende();
			if (legendeCartoRegion.equals("true")) {
				legende = (Legende) sessionObject.getAttribute("legendeRegion");
			} else {
				legende = (Legende) sessionObject.getAttribute("legendeSecteur");
			}
			legende.setTypeClassement(typeClassement);
			legende.setNbCouleurs(Integer.parseInt(nbCouleurs));
			legende.setCouleurBase1(couleurBase1);
			legende.setCouleurBase2(couleurBase2);
			legende.setCouleurBase3(couleurBase3);
			legende.setNbTranches(Integer.parseInt(nbTranches));
			
			List<Palette> palettes = new ArrayList<Palette>();
			String tabColors[] = colors.split(";");
			String tabPalettesMin[] = palettesMin.split(";");
			String tabPalettesMax[] = palettesMax.split(";");
			int i = 0;
			for (String color : tabColors) {
				if (!color.equals("")) {
					Palette palette = new Palette();
					palette.setColor(color);
					if (!palettesMin.equals("")) {
						palette.setMin(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMin[i]), 3));
						palette.setMax(UtilsSalesReport.arrondir(Double.parseDouble(tabPalettesMax[i]), 3));
					}
					palettes.add(palette);
				}
				i++;
			}
			legende.setPalettes(palettes);
			
			if (legendeCartoRegion.equals("true")) {
				sessionObject.setAttribute("legendeRegion", legende);
			} else {
				sessionObject.setAttribute("legendeSecteur", legende);
			}
		}
	
		return null;
	}

}
